`include "../define.svh"

module unpack (
    input unpack_en,     //使能信号
    input [1:0]data_type,
    input [`DATA_SIZE-1:0]data_in,
    input [`DATA_SIZE-1:0]weight_in,
    output  s1_reg,s2_reg,
    output  [7:0]e1_reg,
    output  [7:0]e2_reg,
    output  [23:0]m1_reg,
    output  [23:0]m2_reg
);
    wire data_is_sub,weight_is_sub;

    is_sub u_data_is_sub(
    .data_type(data_type),
    .data_in(data_in),
    .is_sub_flag(data_is_sub)
);

    is_sub u_weight_is_sub(
    .data_type(data_type),
    .data_in(weight_in),
    .is_sub_flag(weight_is_sub)
);

    unpack_core u_data_unpack
(
    .is_sub(data_is_sub),
    .unpack_en(unpack_en),     //使能信号
    .data_type(data_type),
    .data_in(data_in),
    .m(m1_reg),
    .e(e1_reg),
    .s(s1_reg)
);

    unpack_core u_weight_unpack
(
    .is_sub(weight_is_sub),
    .unpack_en(unpack_en),
    .data_type(data_type),
    .data_in(weight_in),
    .m(m2_reg),
    .e(e2_reg),
    .s(s2_reg)
);
endmodule